/**
 * @file         jt_msg_808_proc_param.h
 * @brief        交通部808参数处理过程
 * @note    
 * @author       Akee
 * @date         2020-02-12
 * @version      1.0
 *
 * @par          修改日志
 * <table>
 * <tr><th>Date        <th>Version               <th>Author          <th>Description
 * <tr><td>2020-02-12  <td>1.0                   <td>Akee            <td>创建初始版本
 * @copyright    杭州鸿泉物联网技术股份有限公司
 */
#ifndef _JT_MSG_808_PROC_PARAM_H_
#define _JT_MSG_808_PROC_PARAM_H_

#include "ofc/ofc_object.h"
#include "jtmsg808/jtc_msg_808_session_interface.h"
#include "bsc_jt808_frame_channel.h"
//#include "jt808_frame_property.h"
#ifdef __cplusplus
extern "C" {
#endif


///**
//	* 协议类型枚举
//	*/
//enum TBsJt808TypeEnumTag
//{
//	kStdJt808 = 0,        ///< 标准808类型
//	kExtJt808 = 1,        ///< 鸿泉自定义类型	
//	kSrtJt808 = 2,		  ///< 属性
//	kMixJt808 = 3,		  ///< 属性和808混合
//};
//typedef enum TJt808TypeEnumTag TJt808TypeEnum;

///**
// * 参数类型枚举
// */
//enum TJt808ParamTypeEnumTag
//{
//	kJtMsg808ParamTypeU08 = 1,     ///< Byte类型
//	kJtMsg808ParamTypeU16 = 2,     ///< Word类型
//	kJtMsg808ParamTypeU32 = 3,     ///< DWord类型
//	kJtMsg808ParamTypeMem = 4,     ///< Mem类型
//    kJtMsg808ParamTypeMax = 5,
//};
//typedef enum TJt808ParamTypeEnumTag TJt808ParamTypeEnum;

/**
 * 808的0x8103参数设置内容处理
 * @param sender: 消息内容，实体消息需要指向TJtMsg808SetParams
 * @param receiver: 接收者,这里可为NULL
 * @param session: 会话对象指针
 * @return 
 */
void BsJt808ProcParamSetParams(Bool change_report_flag, TJtMsg808 *sender, void *receiver, TBsJt808FrameChannel *channel);

/**
 * 808的0x8104参数查询内容处理
 * @param sender: 消息内容，实体消息需要指向TJtMsg808GetParam
 * @param receiver: 接收者,这里可为NULL
 * @param session: 会话对象指针
 * @return
 */
void BsJt808ProcParamGetParam(TJtMsg808 *sender, void *receiver, TBsJt808FrameChannel *channel);

/**
 * 808的0x8106参数查询内容处理
 * @param sender: 消息内容，实体消息需要指向TJtMsg808GetParams
 * @param receiver: 接收者,这里可为NULL
 * @param session: 会话对象指针
 * @return
 */
void BsJt808ProcParamGetParams(TJtMsg808 *sender, void *receiver, TBsJt808FrameChannel *channel);

/**
 * 808的obos参数上报
 * @return
 */
void BsJt808ProcParamGetAllParamInfoSend(UInt32 cmd, TJtMsg808 *sender, TBsJt808FrameChannel *channel, TJtMsg808Head *msg_head);

///**
// * 获取808的obos参数类型
// * @return
// */
//UInt32 BsJt808ProcParamGetIdType(UInt32 id);


///**
// * 获取808的srt属性
// * @return
// */
//UInt32 PdkBsJt808SrtParamGetProperty( UInt32 *id, UInt8 *type, Byte *buf, Int32 buf_len, Bool conv);

/**
 * 处理JT808鸿泉云网协议中的ABos参数上报功能。
 * 
 * @param channel 指向JT808帧数据通道的指针
 * @param msg_head 指向JT808消息头的指针
 * @param jt808_id_list 指向一个整型数组的指针，该数组存储了JT808参数的ID列表。
 * @param list_cnt 整型数组中元素的数量，表示JT808参数ID列表中的ID个数。
 */
void BsJt808ProcParamABosParamsReport(TBsJt808FrameChannel *channel, TJtMsg808Head *msg_head, UInt32 *jt808_id_list, Int32 list_cnt);

#ifdef __cplusplus
} // extern "C" {
#endif

#endif
